package com.tc.service;

import com.tc.dto.LoginDTO;
import com.tc.vo.CaptchaVO;
import com.tc.vo.LoginVO;
import com.tc.utils.ResultVo;

/**
 * <p>
 * 认证服务接口
 * </p>
 *
 * @author tc
 * @since 2025-07-10
 */
public interface IAuthService {

    /**
     * 生成验证码
     * 
     * @return 验证码信息
     */
    ResultVo<CaptchaVO> generateCaptcha();

    /**
     * 用户登录
     * 
     * @param loginDTO 登录参数
     * @return 登录结果
     */
    ResultVo<LoginVO> login(LoginDTO loginDTO);

    /**
     * 用户登出
     * 
     * @param token 访问令牌
     * @return 操作结果
     */
    ResultVo<Void> logout(String token);

    /**
     * 刷新令牌
     * 
     * @param refreshToken 刷新令牌
     * @return 新的令牌信息
     */
    ResultVo<LoginVO> refreshToken(String refreshToken);
}
